package com.bone.user.service;

import java.util.List;
import java.util.Map;

import com.bone.page.Page;
import com.bone.user.dao.UserAccountChangeDAO;
import com.bone.user.dao.UserAccountDAO;
import com.bone.user.dao.UserDAO;
import com.bone.user.po.User;
import com.bone.user.po.UserAccount;
import com.bone.user.po.UserAccountChange;
import com.bone.vo.UserVO;

public interface UserService {
	/**
	 *  取UserVO符合查询条件的数据.
	 * @param parameter
	 * @return
	 */
	Page<UserVO> queryUserVOPageByParam(Map<String, Object> parameter,
			int pageSize, int page);
	/**
	 * 取UserVO符合查询条件的数据.
	 * @param parameter
	 * @return
	 */
	Long queryUserVOCountByParam(Map<String, Object> para);
	/**
	 * 
	 * @param para
	 * @return
	 */
	List<UserVO> queryUserVOListByParam(Map<String, Object> para);
	
	/**
	 * 取 UserReceive收货地址   符合查询条件的数据.
	 * @param parameter
	 * @return
	 */
//	Page<UserReceive> queryUserReceivePageByParam(Map<String, Object> parameter,int pageSize, int page);
	
	/**
	 * 根据用户的ID取用户的信息.
	 * @param userId
	 * @return
	 */
	User queryUserById(Long userId);
	
	/**
	 * 用户数据列表.
	 * @param parameter
	 * @return
	 */
	Page<User> queryUserPageByParam(Map<String, Object> parameter,
			int pageSize, int page);
	
	
	/**
	 * 用户账户 数据列表.
	 * @param parameter
	 * @return
	 */
	Page<UserAccount> queryUserAccountPageByParam(Map<String, Object> parameter,
			int pageSize, int page);
	
	
	/**
	 * 用户账户明细数据列表.
	 * @param parameter
	 * @return
	 */
	Page<UserAccountChange> queryUserAccountChangePageByParam(Map<String, Object> parameter,
			int pageSize, int page);
	
	

	UserDAO getUserDAO();

	void setUserDAO(UserDAO userDAO);

	UserAccountDAO getUserAccountDAO();

	void setUserAccountDAO(UserAccountDAO userAccountDAO);

	UserAccountChangeDAO getUserAccountChangeDAO();

	void setUserAccountChangeDAO(
			UserAccountChangeDAO userAccountChangeDAO);

}